Common EIPs: Content-Based Router, Splitter, Aggregator, Message Filter

Apache Camel-এ Common Enterprise Integration Patterns (EIPs) যেমন Content-Based Router, Splitter, Aggregator, এবং Message Filter ব্যবহৃত হয়। এগুলি বিভিন্ন মেসেজ এবং ডেটা প্রবাহকে পরিচালনা করতে সাহায্য করে। নিচে প্রতিটি EIP এর সংক্ষিপ্ত বিবরণ এবং Apache Camel-এ তাদের ব্যবহারের উদাহরণ দেওয়া হলো।

১. Content-Based Router

বর্ণনা: Content-Based Router মেসেজের কনটেন্ট অনুযায়ী বিভিন্ন গন্তব্যে মেসেজগুলোকে রাউট করে। এটি নির্ধারণ করে কোন মেসেজটি কোন পথে যাবে।

উদাহরণ:

from("direct:start")
    .choice()
        .when(simple("${body} contains 'urgent'"))
            .to("direct:urgent")
        .when(simple("${body} contains 'normal'"))
            .to("direct:normal")
        .otherwise()
            .to("direct:default");

এই উদাহরণে, মেসেজের কনটেন্ট অনুযায়ী এটি বিভিন্ন গন্তব্যে পাঠানো হচ্ছে।

২. Splitter

বর্ণনা: Splitter একটি একক মেসেজকে একাধিক অংশে ভাগ করে এবং প্রতিটি অংশকে আলাদাভাবে প্রক্রিয়া করে। এটি সাধারণত একটি তালিকা বা অ্যারে থেকে একাধিক মেসেজ তৈরি করতে ব্যবহৃত হয়।

উদাহরণ:

from("direct:start")
    .split(body().tokenize(","))
    .to("log:splitter");

এই উদাহরণে, একটি কমা দ্বারা পৃথক করা তালিকাকে আলাদা মেসেজে ভাগ করা হচ্ছে এবং প্রতিটি অংশ লগ করা হচ্ছে।

৩. Aggregator

বর্ণনা: Aggregator বিভিন্ন মেসেজকে একত্রিত করে একটি একক মেসেজ তৈরি করে। এটি একাধিক মেসেজের তথ্য সংগ্রহ করে একটি সামগ্রিক ফলাফল তৈরি করতে ব্যবহৃত হয়।

উদাহরণ:

from("direct:start")
    .aggregate(header("correlationId"), new MyAggregationStrategy())
    .completionSize(3) // 3টি মেসেজ আসার পর একত্রিত হবে
    .to("log:aggregated");

এখানে, correlationId এর ভিত্তিতে মেসেজগুলোকে একত্রিত করা হচ্ছে, এবং তিনটি মেসেজ আসার পর ফলাফল দেখা যাবে।

৪. Message Filter

বর্ণনা: Message Filter একটি নির্দিষ্ট শর্তের ভিত্তিতে মেসেজগুলোকে বাদ দেয়। এটি শুধুমাত্র নির্দিষ্ট শর্ত পূরণ করা মেসেজগুলোকে অগ্রাধিকার দেয়।

উদাহরণ:

from("direct:start")
    .filter(simple("${body} contains 'important'"))
    .to("log:filtered");

এই উদাহরণে, শুধুমাত্র "important" শব্দ যুক্ত মেসেজগুলোকে প্রক্রিয়া করা হচ্ছে এবং বাকিগুলো বাদ দেওয়া হচ্ছে।

উপসংহার

Apache Camel এ এই EIPs ব্যবহার করে আপনি আপনার মেসেজ প্রবাহকে আরও কার্যকরভাবে পরিচালনা করতে পারেন। প্রতিটি প্যাটার্ন আলাদা আলাদা সমস্যার সমাধান করতে সহায়ক, এবং এগুলির সঠিক ব্যবহার আপনার অ্যাপ্লিকেশনের দক্ষতা বৃদ্ধি করে।

আরও দেখুন...

Promotion